In these years, in order to meet demands for systems such as an increase in the scale of systems or the complication of client's needs, a large-scale program is used in which other programs are called and run in the program to execute a plurality of programs in cooperation with each other. For an example that programs are caused to cooperate with each other, there is a large-scale program, for instance, in which when a program A is run, a program B is called and run in the program A, and when the program B is run, a program C is called and run in the program B.
There is a known method in which a branch to the high-order program of a caller is described in a called low-order program, and, when an error occurs in the large-scale program mentioned above, control is returned from the low-order program to the high-order program. Such a method is used in COBOL, for example, in which a GOTO statement is used to return control into the program, whereas in the C language, a setjmp function, a longjmp function, or the like is used to return control to a high-order program.
In the case of this method, before returning to a high-order program for rerun, an administrator, an operator, or the like initializes resources such as data and files used in the already executed program. This is performed in order to prevent memory leakage, the duplex open error of a file, or the like.
In a large-scale program including a large number of programs to call a plurality of low-order programs, processing is not sometimes successfully ended when only the high-order program of a program having errors is rerun. In this case, such a method is also performed in which a large-scale program is entirely ended and the large-scale program is rerun from the beginning.
Patent Literature 1: Japanese Laid-open Patent Publication No. 02-079125
Patent Literature 2: Japanese Laid-open Patent Publication No. 59-135551
Patent Literature 3: Japanese Laid-open Patent Publication No. 06-168124.
However, in the conventional art, a problem arises in that it takes time to start rerunning a program having an error.
For example, in the method that control is returned to a high-order program, an administrator or the like generates and runs a different program to initialize resources before rerunning a program having an error. In the case where programs are run in cooperation with each other, the update history of data is identified as well as it is identified which timing a file has been opened, and then a program to initialize resources is generated and run. Consequently, it takes time to make preparation before rerunning a program having an error.
In the method in which a program is rerun from the beginning, since it takes time to successfully end a complicated large-scale program in these years entirely, it takes a lot of time to start rerunning the program. If a large-scale program is not overall successfully ended, it is likely that this large-scale program itself might not be rerun.